package com.xyd.mapper;

import com.xyd.entity.Product;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface ProductMapper {

  /**
   * 根据用户名获取信息
   *
   * @param product
   * @return 商品信息
   */
  Product getProduct(Product product);

  /**
   * 根据二级分类的id获取商品信息
   *
   * @param id 分类id
   * @return 商品信息
   */
  List<Product> getProductById(@Param("id") int id);

  /**
   * 管理员界面展示所有商品
   *
   * @param start    从第几条开始
   * @param pageSize 每页显示条数
   * @return 商品信息列表
   */
  List<Product> adminShowProduct(@Param("start") Integer start,
      @Param("pageSize") Integer pageSize);

  /**
   * 查询商品总数
   *
   * @return 商品数量
   */
  Integer findCountProduct();

  /**
   * 根据商品id删除商品
   *
   * @param epId 商品id
   * @return 是否删除成功
   */
  boolean adminDeleteProductByEpId(long epId);

  /**
   * 根据商品id查询商品信息
   *
   * @param epId 商品id
   * @return 商品信息
   */
  Product adminGetProductByEpId(Long epId);

  /**
   * 修改商品信息
   *
   * @param product 商品新信息
   * @return 是否成功
   */
  Boolean adminChangeProduct(Product product);

  /**
   * 获取所有商品信息
   *
   * @return 商品信息
   */
  List<Product> getAllProduct();

  /**
   * 添加商品信息
   *
   * @param product 商品信息
   * @return 是否成功
   */
  Boolean adminAddProduct(Product product);

  /**
   * 根据主键id获取对应的信息
   *
   * @param id 主键
   * @return
   */
  Product getProductByEpid1(@Param("id") Long id);

  /**
   * 根据商品id查询商品信息
   *
   * @param epId 商品id
   * @return 商品信息
   */
  Product getProductByEpId(Long epId);

  /**
   * 查询购物车中所有商品
   *
   * @param toString 商品id
   * @return 商品集合
   */
  List<Product> getProductByEpIds(String[] toString);
}
